<?xml version="1.0" encoding="UTF-8"?>
<!--
  High Torque Training — Zwift workout
  Last updated: 2026-05-23

  Site:      https://high-torque.jelen.dk/
  Calendar:  https://high-torque.jelen.dk/content/workouts.md
  Rationale: https://high-torque.jelen.dk/content/rationale.md
  LLMs:      https://high-torque.jelen.dk/llms.txt
-->
<workout_file>
    <author>Tom Jelen</author>
    <name>Threshold 5x5</name>
    <activitySaveName>High Torque: Threshold 5×5 min ~95% FTP @ 50–60 rpm</activitySaveName>
    <description>Threshold torque session based on Neal Henderson's prescription. Five 5-minute intervals at ~95% FTP and 50-60 rpm, with approximately half-time recovery (3.5 min). Henderson uses this as the threshold step in his torque progression. Seated throughout.</description>
    <sportType>bike</sportType>
    <tags />
    <workout>
        <Warmup Duration="900" PowerLow="0.40" PowerHigh="0.75">
            <textevent timeoffset="30" duration="30" message="Source: Neal Henderson (Fast Talk Labs). Henderson prescribes 5x5 min at ~95% FTP, 50-60 rpm with half-time recovery — the threshold step in his torque progression." />
            <textevent timeoffset="90" duration="20" message="Full research and protocol rationale at high-torque.jelen.dk" />
            <textevent timeoffset="120" duration="20" message="Henderson's progression: tempo (80-85% FTP) first, then threshold (this session), then VO2max. Each step builds on the last." />
            <textevent timeoffset="240" duration="25" message="~95% FTP at 50-60 rpm produces very high force per pedal stroke. This is a demanding session — only attempt it after several weeks of comfortable Tier 2 work." />
            <textevent timeoffset="420" message="All intervals are SEATED. Target cadence: 50-60 rpm." />
            <textevent timeoffset="600" duration="25" message="Recovery between intervals is about half the work time — 3.5 minutes. Henderson: 'half time recovery' for threshold torque efforts." />
            <textevent timeoffset="780" duration="20" message="If your knees ache at any point, stop the interval. At threshold intensity, the temptation to push through is high. Don't." />
        </Warmup>

        <SteadyState Duration="300" Power="0.95" Cadence="55">
            <textevent timeoffset="10" message="Interval 1. ~95% FTP, 50-60 rpm. Stay seated. 5 minutes." />
            <textevent timeoffset="150" duration="20" message="Halfway. You should feel this primarily in the legs, with moderate breathing effort." />
            <textevent timeoffset="270" message="30 seconds left. Hold cadence and power." />
        </SteadyState>

        <SteadyState Duration="210" Power="0.50">
            <textevent timeoffset="10" message="Recovery. Short — about 3.5 minutes. Spin easy." />
            <textevent timeoffset="120" duration="20" message="Henderson has never programmed back-to-back torque sessions. He stresses: musculoskeletal load is the main limiter." />
        </SteadyState>

        <SteadyState Duration="300" Power="0.95" Cadence="55">
            <textevent timeoffset="10" message="Interval 2. ~95% FTP, 50-60 rpm. Stay seated." />
            <textevent timeoffset="150" message="Halfway. Threshold torque — demanding in the legs more than the lungs." />
            <textevent timeoffset="270" message="30 seconds left." />
        </SteadyState>

        <SteadyState Duration="210" Power="0.50">
            <textevent timeoffset="10" message="Recovery. Two down, three to go." />
            <textevent timeoffset="120" message="Knees still fine? This intensity puts real load on the joints." />
        </SteadyState>

        <SteadyState Duration="300" Power="0.95" Cadence="55">
            <textevent timeoffset="10" message="Interval 3. ~95% FTP, 50-60 rpm. Stay seated." />
            <textevent timeoffset="150" message="Halfway. Keep the form — seated, smooth strokes, 50-60 rpm." />
            <textevent timeoffset="270" message="30 seconds left." />
        </SteadyState>

        <SteadyState Duration="210" Power="0.50">
            <textevent timeoffset="10" message="Recovery. Three down, two to go." />
            <textevent timeoffset="120" message="Halfway through the session." />
        </SteadyState>

        <SteadyState Duration="300" Power="0.95" Cadence="55">
            <textevent timeoffset="10" message="Interval 4. ~95% FTP, 50-60 rpm. Stay seated." />
            <textevent timeoffset="150" message="Halfway. Penultimate interval. One more after this." />
            <textevent timeoffset="270" message="30 seconds left." />
        </SteadyState>

        <SteadyState Duration="210" Power="0.50">
            <textevent timeoffset="10" message="Recovery. One more interval." />
            <textevent timeoffset="120" message="Final interval next. Knees still fine?" />
        </SteadyState>

        <SteadyState Duration="300" Power="0.95" Cadence="55">
            <textevent timeoffset="10" message="Final interval. ~95% FTP, 50-60 rpm. Stay seated." />
            <textevent timeoffset="150" message="Halfway. Last effort." />
            <textevent timeoffset="270" message="30 seconds. Finish it." />
        </SteadyState>

        <Cooldown Duration="600" PowerLow="0.50" PowerHigh="0.40">
            <textevent timeoffset="30" message="Cool down. Easy spin at normal cadence." />
            <textevent timeoffset="120" duration="25" message="Note how your knees feel. Threshold torque is high joint load. Any lingering ache 24+ hours after warrants skipping the next torque session." />
            <textevent timeoffset="300" duration="25" message="EVOQ: during race season, 1-2 torque sessions per month is sufficient to maintain the adaptation. You don't need this intensity year-round." />
        </Cooldown>
    </workout>
</workout_file>
